package com.hu.jie.mywallpager.view;

import android.content.Context;
import android.graphics.Bitmap;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.hu.jie.mywallpager.R;
import com.hu.jie.mywallpager.app.IApp;
import com.hu.jie.mywallpager.bean.Seek;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by jie on 2016/7/8.
 * name:自定义组合控件
 * overview:把已有的控件组合到一起当成一个控件使用
 * usage:
 * 1.布局文件，自定义组合控件初始化对象后的显示效果
 * 2.初始化布局，把布局文件转换成的View对象，赋值给自己(第二个参数是this)
 * LayoutInflater.from(context).inflate(R.layout.view_search_top, this);
 * 3.暴露一些公共的方法去实现一些效果
 */
public class SearchTopView extends LinearLayout{

    private LinearLayout ll_top_iv;
    private List<Seek.Data> mDatas;
    private Context mContext;
    private DisplayImageOptions options;

    //动态创建的时候会被调用，在代码中new这个类的对象的时候，调用此方法
    public SearchTopView(Context context) {
        this(context,null);
    }

    //在布局文件中，引用自己定义的控件并创建出对象的时候会被调用
    public SearchTopView(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public SearchTopView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView(context);
    }


    private void initView(Context context) {
        LayoutInflater.from(context).inflate(R.layout.view_search_top,this);

        ll_top_iv = (LinearLayout) findViewById(R.id.ll_top_iv);
        mDatas = new ArrayList<>();
        this.mContext = context;

        options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .bitmapConfig(Bitmap.Config.RGB_565)
                .showImageOnFail(R.mipmap.ic_launcher)
                .showImageOnFail(R.mipmap.ic_launcher)
                .build();
    }


    public void setData(List<Seek.Data> datas) {
        if (datas != null){
            mDatas.addAll(datas);
            for (int i = 0; i < mDatas.size(); i++) {
                //动态创建图片
                ImageView iv = new ImageView(mContext);
                //设置参数
                LinearLayout.LayoutParams params =
                        new LinearLayout.LayoutParams(0, IApp.mScreenWidth /4,1);
                //设置一些margin值
                params.setMargins(8,8,8,8);
                iv.setLayoutParams(params);
                //加载载图片
                ImageLoader.getInstance().displayImage(mDatas.get(i).imgs.get(0),iv,options);
                //加载好的图片添加到HorizontalScrollView中去
                ll_top_iv.addView(iv);
            }
        }
    }
}
